from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants #class Introduction(Page): #timeout_seconds = 100 class ResultsWaitPage(WaitPage): #after_all_players_arrive = 'random_round' wait_for_all_groups = True class Results(Page): def vars_for_template(self): print(self.participant.vars) self.player.id_random = int(self.participant.vars['id_random']) self.player.supergroup_task1 = str(self.participant.vars['supergroup_task1']) self.player.decision_task1_r1 = int(self.participant.vars['decision_task1_r1']) # self.player.decision_task1_r2 = int(self.participant.vars['decision_task1_r2']) # self.player.decision_task1_r3 = int(self.participant.vars['decision_task1_r3']) # self.player.decision_task1_r4 = int(self.participant.vars['decision_task1_r4']) # self.player.decision_task1_r5 = int(self.participant.vars['decision_task1_r5']) self.player.decision_guess_task1_r1 = int(self.participant.vars['decision_guess_task1_r1']) # self.player.decision_guess_task1_r5 = int(self.participant.vars['decision_guess_task1_r5']) self.player.decision_task1_type_r1 = str(self.participant.vars['decision_task1_type_r1']) # self.player.decision_task1_type_r2 = str(self.participant.vars['decision_task1_type_r2']) # self.player.decision_task1_type_r3 = str(self.participant.vars['decision_task1_type_r3']) # self.player.decision_task1_type_r4 = str(self.participant.vars['decision_task1_type_r4']) # self.player.decision_task1_type_r5 = str(self.participant.vars['decision_task1_type_r5']) self.player.payoff_task1_r1_int = int(self.participant.vars['payoff_task1_r1_int']) # self.player.payoff_task1_r2_int = int(self.participant.vars['payoff_task1_r2_int']) # self.player.payoff_task1_r3_int = int(self.participant.vars['payoff_task1_r3_int']) # self.player.payoff_task1_r4_int = int(self.participant.vars['payoff_task1_r4_int']) # self.player.payoff_task1_r5_int = int(self.participant.vars['payoff_task1_r5_int']) self.player.cooprate_task1_r1 = int(self.participant.vars['cooprate_task1_r1']) # self.player.cooprate_task1_r2 = int(self.participant.vars['cooprate_task1_r2']) # self.player.cooprate_task1_r3 = int(self.participant.vars['cooprate_task1_r3']) # self.player.cooprate_task1_r4 = int(self.participant.vars['cooprate_task1_r4']) # self.player.cooprate_task1_r5 = int(self.participant.vars['cooprate_task1_r5']) if Constants.randomly_selected_round == 1: self.player.payoff_int = self.player.payoff_task1_r1_int if Constants.randomly_selected_round == 2: self.player.payoff_int = self.player.payoff_task1_r2_int if Constants.randomly_selected_round == 3: self.player.payoff_int = self.player.payoff_task1_r3_int if Constants.randomly_selected_round == 4: self.player.payoff_int = self.player.payoff_task1_r4_int if Constants.randomly_selected_round == 5: self.player.payoff_int = self.player.payoff_task1_r5_int self.participant.vars['payoff_int'] = self.player.payoff_int self.player.randomly_selected_round = Constants.randomly_selected_round self.player.payoff_eur = self.player.payoff_int*Constants.conversion_rate self.player.payoff_eur_to_show = round(self.player.payoff_eur, ndigits=2) if self.player.cooprate_task1_r1 < 21: self.player.cooprate_task1_r1_class = 1 elif self.player.cooprate_task1_r1 > 20 and self.player.cooprate_task1_r1 < 41: self.player.cooprate_task1_r1_class = 2 elif self.player.cooprate_task1_r1 > 40 and self.player.cooprate_task1_r1 < 61: self.player.cooprate_task1_r1_class = 3 elif self.player.cooprate_task1_r1 > 60 and self.player.cooprate_task1_r1 < 81: self.player.cooprate_task1_r1_class = 4 else: self.player.cooprate_task1_r1_class = 5 # if self.player.cooprate_task1_r5 < 21: # self.player.cooprate_task1_r5_class = 1 # elif self.player.cooprate_task1_r5 > 20 and self.player.cooprate_task1_r5 < 41: # self.player.cooprate_task1_r5_class = 2 # elif self.player.cooprate_task1_r5 > 40 and self.player.cooprate_task1_r5 < 61: # self.player.cooprate_task1_r5_class = 3 # elif self.player.cooprate_task1_r5 > 60 and self.player.cooprate_task1_r5 < 81: # self.player.cooprate_task1_r5_class = 4 # else: # self.player.cooprate_task1_r5_class = 5 if self.player.decision_guess_task1_r1 == self.player.cooprate_task1_r1_class: self.player.decision_guess_task1_r1_premium = 1 else: self.player.decision_guess_task1_r1_premium = 0 # if self.player.decision_guess_task1_r5 == self.player.cooprate_task1_r5_class: # self.player.decision_guess_task1_r5_premium = 1 # else: # self.player.decision_guess_task1_r5_premium = 0 if self.player.randomly_selected_round == 1: self.player.decision_guess_premium = self.player.decision_guess_task1_r1_premium elif self.player.randomly_selected_round == 5: self.player.decision_guess_premium = self.player.decision_guess_task1_r5_premium else: self.player.decision_guess_premium = 0 self.player.payoff_final = self.player.payoff_eur + self.player.decision_guess_premium*2 self.player.payoff_final_to_show = round(self.player.payoff_final, ndigits=2) if self.player.randomly_selected_round in Constants.rounds_with_guess: self.player.round_with_guess = 1 print(self.participant.vars) return {'random_id': self.player.id_random, 'payoff_int': self.player.payoff_int, 'randomly_selected_round': self.player.randomly_selected_round, 'decision_guess_premium': self.player.decision_guess_premium, 'payoff_eur': self.player.payoff_eur, 'payoff_eur_to_show': self.player.payoff_eur_to_show, 'payoff_final': self.player.payoff_final, 'payoff_final_to_show': self.player.payoff_final_to_show , 'round_with_guess': self.player.round_with_guess, 'right_guess_payoff': Constants.right_guess_payoff } #def after_all_players_arrive(self): #self.player.set_payoff() # def after_all_players_arrive(self): # self.player.set_payoff() #def vars_for_template(self): # return dict(payoff_guess_task=self.player.payoff_guess, # right_guess= self.player.decision_guess_r1 == self.player.coop_rate_r1, # wrong_guess=self.player.decision_guess_r1 != self.player.coop_rate_r1, # ) # def after_all_players_arrive(self): # for g in self.subsession.get_groups(): # for p in g.get_players(): # round_to_pay = random.randint(1,2) # where 4 is your total number of apps, dont forget to 'import random' with the other import statements at the top of the page # if round_to_pay == 1: # p.player.payoff = p.participant.vars.get('decision_r1', 0) # if round_to_pay == 2: # p.player.payoff = p.participant.vars.get('decision_r2', 0) page_sequence = [ ResultsWaitPage, Results ]